package com.project.lk.nurseapp.utils;

import com.project.lk.nurseapp.base.BaseApp;
import com.project.lk.nurseapp.db.RemindBean;
import com.project.lk.nurseapp.db.RemindBeanDao;
import com.project.lk.nurseapp.db.UserDaoBean;
import com.project.lk.nurseapp.db.UserDaoBeanDao;

import org.greenrobot.greendao.query.Query;

import java.util.List;

/**
 * 功能介绍：
 * 项目名：
 * 模块名称：
 * 作者：LK
 * 日期：2018/1/9
 * 修改日期：
 */

public class RemindInfoUtils {

    /**
     * 根据查询条件,返回数据列表
     * @param where        条件
     * @param params       参数
     * @return             数据列表
     */
    public List<RemindBean> queryN(String where, String... params){
        return getRemindDao().queryRaw(where, params);
    }

    /**
     * 根据用户信息,插件或修改信息
     * @param user 用户信息
     * @return 插件或修改的用户id
     */
    public static long saveNote(RemindBean remindBean){
        return getRemindDao().insertOrReplace(remindBean);
    }

    /**
     * 批量插入或修改用户信息
     * @param list      用户信息列表
     */
    public void saveNLists(final List<RemindBean> list){
        if(list == null || list.isEmpty()){
            return;
        }
        getRemindDao().getSession().runInTx(new Runnable() {
            @Override
            public void run() {
                for(int i=0; i<list.size(); i++){
                    RemindBean user = list.get(i);
                    getRemindDao().insertOrReplace(user);
                }
            }
        });

    }

    /**
     * 删除所有数据
     */
    public static void deleteAllNote(){
        getRemindDao().deleteAll();
    }

    /**
     * 根据用户类,删除信息
     * @param user    用户信息类
     */
    public void deleteNote(RemindBean user){
        getRemindDao().delete(user);
    }
    private static RemindBeanDao getRemindDao() {
        return BaseApp.getInstance().getDaoSession().getRemindBeanDao();
    }
    /**
     * 从本地缓存中获取user对象
     *
     * @param Id ID
     * @return 返回用户信息
     */
    public static RemindBean getUserInfoFromCache(String id) {
        RemindBeanDao remindBeanDao = BaseApp.getInstance().getDaoSession().getRemindBeanDao();
        Query<RemindBean> query = remindBeanDao.queryBuilder().where(RemindBeanDao.Properties.Id.eq(id))
                .build();
        return query.unique();
    }
}
